package com.bsoft.gol.hcs.specialist.entity;

import javax.persistence.*;
import java.sql.Timestamp;
import java.util.Objects;

/**
 * 检查报告表
 * @author lanyu
 * @date 2021年10月14日 9:57
 */
@Entity
@Table(name = "exam_report")
public class ExamReportEntity {
    /**
     * 检查报告id
     */
    private String examReportId;
    /**
     * 业务系统患者档案id
     */
    private String sourcePatientId;
    /**
     * 业务类型代码 1门诊、2住院
     */
    private String businessType;
    /**
     * 业务记录号
     */
    private String businessId;
    /**
     * 患者姓名
     */
    private String name;
    /**
     * 身份证件号码
     */
    private String idCard;
    /**
     * 患者性别代码
     */
    private String sex;
    /**
     * 就诊流水号
     */
    private String visitId;
    /**
     * 患者类型代码
     */
    private String patientType;

    /**
     * 门（急）诊号
     */
    private String clinicId;
    /**
     * 住院号
     */
    private String hospizationId;
    /**
     * 患者年龄
     */
    private String age;
    /**
     * 检查类别代码
     */
    private String examTypeCode;
    /**
     * 检查类别名称
     */
    private String examTypeName;
    /**
     * 检查申请单编号
     */
    private String requestId;
    /**
     * 报告机构名称
     */
    private String reportOrganizationName;
    /**
     * 检查报告机构
     */
    private String reportOrganization;
    /**
     * 报告单编号
     */
    private String reportId;
    /**
     * 检查报告科室代码
     */
    private String reportDept;
    /**
     * 检查报告科室名称
     */
    private String inspectDepartmentName;
    /**
     * 检查方法名称
     */
    private String examMethodName;
    /**
     * 影像号
     */
    private String studyId;
    /**
     * 放射DICOM影像webview的URL
     */
    private String webPacsUrl;
    /**
     * 检查项目代码
     */
    private String examItemCode;
    /**
     * 检查项目名称集
     */
    private String examItemName;
    /**
     * 检查部位代码
     */
    private String examPartCode;
    /**
     * 检查部位名称
     */
    private String examPartName;
    /**
     * 检查描述
     */
    private String examDescript;
    /**
     * 检查结论
     */
    private String examDiagnosis;
    /**
     * 医生建议
     */
    private String suggestion;
    /**
     * 检查技师代码
     */
    private String technician;
    /**
     * 检查技师签名
     */
    private String executeDoctorCode;
    /**
     * 检查技师姓名
     */
    private String executeDoctor;
    /**
     * 检查时间
     */
    private Timestamp executeDatetime;
    /**
     * 报告医生代码
     */
    private String reportDoctorCode;
    /**
     * 报告医生名称
     */
    private String reportDoctorName;
    /**
     * 报告时间
     */
    private Timestamp reportDatetime;
    /**
     * 审核医生代码
     */
    private String reviewDoctorCode;
    /**
     * 审核医生名称
     */
    private String reviewDoctor;
    /**
     * 审核时间
     */
    private Timestamp reviewDatetime;
    /**
     * 检查报告备注
     */
    private String reportMark;
    /**
     * 报告打印标志代码
     */
    private String reportPrintFlag;
    /**
     * 检查设备名称
     */
    private String examinationDevice;
    /**
     * 图文报告文件格式
     */
    private String fileType;
    /**
     * 图文报告文件地址
     */
    private String fileName;
    /**
     * 阴阳性  1阳性 0阴性
     */
    private String malignant;

    /**
     * 删除标志
     */
    private String deleteFlag;
    /**
     * 创建时间
     */
    private Timestamp createTime;
    /**
     * 修改时间
     */
    private Timestamp modifyTime;

    @Id
    @Column(name = "exam_report_id")
    public String getExamReportId() {
        return examReportId;
    }

    public void setExamReportId(String examReportId) {
        this.examReportId = examReportId;
    }

    @Basic
    @Column(name = "source_patient_id")
    public String getSourcePatientId() {
        return sourcePatientId;
    }

    public void setSourcePatientId(String sourcePatientId) {
        this.sourcePatientId = sourcePatientId;
    }
    @Basic
    @Column(name = "business_type")
    public String getBusinessType() {
        return businessType;
    }

    public void setBusinessType(String businessType) {
        this.businessType = businessType;
    }
    @Basic
    @Column(name = "business_id")
    public String getBusinessId() {
        return businessId;
    }

    public void setBusinessId(String businessId) {
        this.businessId = businessId;
    }
    @Basic
    @Column(name = "name")
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Basic
    @Column(name = "id_card")
    public String getIdCard() {
        return idCard;
    }

    public void setIdCard(String idCard) {
        this.idCard = idCard;
    }

    @Basic
    @Column(name = "sex")
    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    @Basic
    @Column(name = "visit_id")
    public String getVisitId() {
        return visitId;
    }

    public void setVisitId(String visitId) {
        this.visitId = visitId;
    }

    @Basic
    @Column(name = "patient_type")
    public String getPatientType() {
        return patientType;
    }

    public void setPatientType(String patientType) {
        this.patientType = patientType;
    }

    @Basic
    @Column(name = "clinic_id")
    public String getClinicId() {
        return clinicId;
    }

    public void setClinicId(String clinicId) {
        this.clinicId = clinicId;
    }

    @Basic
    @Column(name = "hospization_id")
    public String getHospizationId() {
        return hospizationId;
    }

    public void setHospizationId(String hospizationId) {
        this.hospizationId = hospizationId;
    }

    @Basic
    @Column(name = "age")
    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    @Basic
    @Column(name = "exam_type_code")
    public String getExamTypeCode() {
        return examTypeCode;
    }

    public void setExamTypeCode(String examTypeCode) {
        this.examTypeCode = examTypeCode;
    }

    @Basic
    @Column(name = "exam_type_name")
    public String getExamTypeName() {
        return examTypeName;
    }

    public void setExamTypeName(String examTypeName) {
        this.examTypeName = examTypeName;
    }

    @Basic
    @Column(name = "request_id")
    public String getRequestId() {
        return requestId;
    }

    public void setRequestId(String requestId) {
        this.requestId = requestId;
    }

    @Basic
    @Column(name = "report_organization_name")
    public String getReportOrganizationName() {
        return reportOrganizationName;
    }

    public void setReportOrganizationName(String reportOrganizationName) {
        this.reportOrganizationName = reportOrganizationName;
    }

    @Basic
    @Column(name = "report_organization")
    public String getReportOrganization() {
        return reportOrganization;
    }

    public void setReportOrganization(String reportOrganization) {
        this.reportOrganization = reportOrganization;
    }

    @Basic
    @Column(name = "report_id")
    public String getReportId() {
        return reportId;
    }

    public void setReportId(String reportId) {
        this.reportId = reportId;
    }

    @Basic
    @Column(name = "report_dept")
    public String getReportDept() {
        return reportDept;
    }

    public void setReportDept(String reportDept) {
        this.reportDept = reportDept;
    }

    @Basic
    @Column(name = "inspect_department_name")
    public String getInspectDepartmentName() {
        return inspectDepartmentName;
    }

    public void setInspectDepartmentName(String inspectDepartmentName) {
        this.inspectDepartmentName = inspectDepartmentName;
    }

    @Basic
    @Column(name = "exam_method_name")
    public String getExamMethodName() {
        return examMethodName;
    }

    public void setExamMethodName(String examMethodName) {
        this.examMethodName = examMethodName;
    }

    @Basic
    @Column(name = "study_id")
    public String getStudyId() {
        return studyId;
    }

    public void setStudyId(String studyId) {
        this.studyId = studyId;
    }

    @Basic
    @Column(name = "web_pacs_url")
    public String getWebPacsUrl() {
        return webPacsUrl;
    }

    public void setWebPacsUrl(String webPacsUrl) {
        this.webPacsUrl = webPacsUrl;
    }

    @Basic
    @Column(name = "exam_item_code")
    public String getExamItemCode() {
        return examItemCode;
    }

    public void setExamItemCode(String examItemCode) {
        this.examItemCode = examItemCode;
    }

    @Basic
    @Column(name = "exam_item_name")
    public String getExamItemName() {
        return examItemName;
    }

    public void setExamItemName(String examItemName) {
        this.examItemName = examItemName;
    }

    @Basic
    @Column(name = "exam_part_code")
    public String getExamPartCode() {
        return examPartCode;
    }

    public void setExamPartCode(String examPartCode) {
        this.examPartCode = examPartCode;
    }

    @Basic
    @Column(name = "exam_part_name")
    public String getExamPartName() {
        return examPartName;
    }

    public void setExamPartName(String examPartName) {
        this.examPartName = examPartName;
    }

    @Basic
    @Column(name = "exam_descript")
    public String getExamDescript() {
        return examDescript;
    }

    public void setExamDescript(String examDescript) {
        this.examDescript = examDescript;
    }

    @Basic
    @Column(name = "exam_diagnosis")
    public String getExamDiagnosis() {
        return examDiagnosis;
    }

    public void setExamDiagnosis(String examDiagnosis) {
        this.examDiagnosis = examDiagnosis;
    }

    @Basic
    @Column(name = "suggestion")
    public String getSuggestion() {
        return suggestion;
    }

    public void setSuggestion(String suggestion) {
        this.suggestion = suggestion;
    }

    @Basic
    @Column(name = "technician")
    public String getTechnician() {
        return technician;
    }

    public void setTechnician(String technician) {
        this.technician = technician;
    }

    @Basic
    @Column(name = "execute_doctor_code")
    public String getExecuteDoctorCode() {
        return executeDoctorCode;
    }

    public void setExecuteDoctorCode(String executeDoctorCode) {
        this.executeDoctorCode = executeDoctorCode;
    }

    @Basic
    @Column(name = "execute_doctor")
    public String getExecuteDoctor() {
        return executeDoctor;
    }

    public void setExecuteDoctor(String executeDoctor) {
        this.executeDoctor = executeDoctor;
    }

    @Basic
    @Column(name = "execute_datetime")
    public Timestamp getExecuteDatetime() {
        return executeDatetime;
    }

    public void setExecuteDatetime(Timestamp executeDatetime) {
        this.executeDatetime = executeDatetime;
    }

    @Basic
    @Column(name = "report_doctor_code")
    public String getReportDoctorCode() {
        return reportDoctorCode;
    }

    public void setReportDoctorCode(String reportDoctorCode) {
        this.reportDoctorCode = reportDoctorCode;
    }

    @Basic
    @Column(name = "report_doctor_name")
    public String getReportDoctorName() {
        return reportDoctorName;
    }

    public void setReportDoctorName(String reportDoctorName) {
        this.reportDoctorName = reportDoctorName;
    }

    @Basic
    @Column(name = "report_datetime")
    public Timestamp getReportDatetime() {
        return reportDatetime;
    }

    public void setReportDatetime(Timestamp reportDatetime) {
        this.reportDatetime = reportDatetime;
    }

    @Basic
    @Column(name = "review_doctor_code")
    public String getReviewDoctorCode() {
        return reviewDoctorCode;
    }

    public void setReviewDoctorCode(String reviewDoctorCode) {
        this.reviewDoctorCode = reviewDoctorCode;
    }

    @Basic
    @Column(name = "review_doctor")
    public String getReviewDoctor() {
        return reviewDoctor;
    }

    public void setReviewDoctor(String reviewDoctor) {
        this.reviewDoctor = reviewDoctor;
    }

    @Basic
    @Column(name = "review_datetime")
    public Timestamp getReviewDatetime() {
        return reviewDatetime;
    }

    public void setReviewDatetime(Timestamp reviewDatetime) {
        this.reviewDatetime = reviewDatetime;
    }

    @Basic
    @Column(name = "report_mark")
    public String getReportMark() {
        return reportMark;
    }

    public void setReportMark(String reportMark) {
        this.reportMark = reportMark;
    }

    @Basic
    @Column(name = "report_print_flag")
    public String getReportPrintFlag() {
        return reportPrintFlag;
    }

    public void setReportPrintFlag(String reportPrintFlag) {
        this.reportPrintFlag = reportPrintFlag;
    }

    @Basic
    @Column(name = "examination_device")
    public String getExaminationDevice() {
        return examinationDevice;
    }

    public void setExaminationDevice(String examinationDevice) {
        this.examinationDevice = examinationDevice;
    }

    @Basic
    @Column(name = "file_type")
    public String getFileType() {
        return fileType;
    }

    public void setFileType(String fileType) {
        this.fileType = fileType;
    }

    @Basic
    @Column(name = "file_name")
    public String getFileName() {
        return fileName;
    }

    public void setFileName(String fileName) {
        this.fileName = fileName;
    }

    @Basic
    @Column(name = "malignant")
    public String getMalignant() {
        return malignant;
    }

    public void setMalignant(String malignant) {
        this.malignant = malignant;
    }

    @Basic
    @Column(name = "delete_flag")
    public String getDeleteFlag() {
        return deleteFlag;
    }

    public void setDeleteFlag(String deleteFlag) {
        this.deleteFlag = deleteFlag;
    }
    @Basic
    @Column(name = "create_time")
    public Timestamp getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Timestamp createTime) {
        this.createTime = createTime;
    }

    @Basic
    @Column(name = "modify_time")
    public Timestamp getModifyTime() {
        return modifyTime;
    }

    public void setModifyTime(Timestamp modifyTime) {
        this.modifyTime = modifyTime;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        ExamReportEntity that = (ExamReportEntity) o;
        return Objects.equals(examReportId, that.examReportId) && Objects.equals(sourcePatientId, that.sourcePatientId) && Objects.equals(name, that.name) && Objects.equals(idCard, that.idCard) && Objects.equals(sex, that.sex) && Objects.equals(visitId, that.visitId) && Objects.equals(patientType, that.patientType)  && Objects.equals(clinicId, that.clinicId) && Objects.equals(hospizationId, that.hospizationId) && Objects.equals(age, that.age) && Objects.equals(examTypeCode, that.examTypeCode) && Objects.equals(examTypeName, that.examTypeName) && Objects.equals(requestId, that.requestId) && Objects.equals(reportOrganizationName, that.reportOrganizationName) && Objects.equals(reportOrganization, that.reportOrganization) && Objects.equals(reportId, that.reportId) && Objects.equals(reportDept, that.reportDept) && Objects.equals(inspectDepartmentName, that.inspectDepartmentName) && Objects.equals(examMethodName, that.examMethodName) && Objects.equals(studyId, that.studyId) && Objects.equals(webPacsUrl, that.webPacsUrl) && Objects.equals(examItemCode, that.examItemCode) && Objects.equals(examItemName, that.examItemName) && Objects.equals(examPartCode, that.examPartCode) && Objects.equals(examDescript, that.examDescript) && Objects.equals(examDiagnosis, that.examDiagnosis) && Objects.equals(suggestion, that.suggestion) && Objects.equals(technician, that.technician) && Objects.equals(executeDoctorCode, that.executeDoctorCode) && Objects.equals(executeDoctor, that.executeDoctor) && Objects.equals(executeDatetime, that.executeDatetime) && Objects.equals(reportDoctorCode, that.reportDoctorCode) && Objects.equals(reportDoctorName, that.reportDoctorName) && Objects.equals(reportDatetime, that.reportDatetime) && Objects.equals(reviewDoctorCode, that.reviewDoctorCode) && Objects.equals(reviewDoctor, that.reviewDoctor) && Objects.equals(reviewDatetime, that.reviewDatetime) && Objects.equals(reportMark, that.reportMark) && Objects.equals(reportPrintFlag, that.reportPrintFlag) && Objects.equals(examinationDevice, that.examinationDevice) && Objects.equals(fileType, that.fileType) && Objects.equals(fileName, that.fileName) && Objects.equals(malignant, that.malignant)&& Objects.equals(createTime, that.createTime) && Objects.equals(modifyTime, that.modifyTime);
    }

    @Override
    public int hashCode() {
        return Objects.hash(examReportId, sourcePatientId, name, idCard, sex, visitId, patientType, clinicId, hospizationId, age, examTypeCode, examTypeName, requestId, reportOrganizationName, reportOrganization, reportId, reportDept, inspectDepartmentName, examMethodName, studyId, webPacsUrl, examItemCode, examItemName, examPartCode, examDescript, examDiagnosis, suggestion, technician, executeDoctorCode, executeDoctor, executeDatetime, reportDoctorCode, reportDoctorName, reportDatetime, reviewDoctorCode, reviewDoctor, reviewDatetime, reportMark, reportPrintFlag, examinationDevice, fileType, fileName, malignant, createTime, modifyTime);
    }
}
